مشخصات پروژه
-
660
-
0.0
-
6217
-
0
-
0
برنامه تغییر خاصیت فایل ها و فولدرها
برنامه تغییر خاصیت فایل ها و فولدرها
برنامه تغییر خاصیت فایل ها و فولدرها
در این برنامه بعداز انتخاب یک فولدر توسط کاربر، در صورت وجود آن تمامی فایلها و فولدرهای درون فولدر خاصیت نرمال را می پذیرند. یعنی اگر فایل مخفی در این فولدرها باشد بعد از انجام این برنامه نمایان می شود.
بعد از انتخاب فایل و زدن دکمه Set Files And Folders To Normal وارد کد زیر می شویم:
1: if (!running)
2: return;
3: if (!Directory.Exists(dir))
4: {
5: lblStatus.Text = "Invalid path!";
6: return;
7: }
8: if (chkSub.Checked)
9: {
10: try
11: {
12: foreach (string d in System.IO.Directory.GetDirectories(dir))
13: {
14: lblStatus.Text = dir;
15: setNormal(d);
16: count += Directory.GetFiles(d).Length +
Directory.GetDirectories(dir).Length;
17: prg.Maximum = Directory.GetFiles(d).Length + Directory.GetDirectories(dir).Length;
18: prg.Value = 0;
19: DirectoryInfo df = new DirectoryInfo(d);
20: try
21: {
22: df.Attributes = FileAttributes.Normal;
23: prg.Value++;
24: }
25: catch
26: {
27: }
28: foreach (string fil in System.IO.Directory.GetFiles(d))
29: {
30: FileInfo f = new FileInfo(fil);
31: try
32: {
33: f.Attributes = FileAttributes.Normal;
34: prg.Value++;
35: Application.DoEvents();
36: }
37: catch
38: {
39: }
40: }
41: }
42: }
43: catch
44: {
45: }
46: }
47: else
48: {
49: count = Directory.GetFiles(dir).Length;
50: prg.Maximum = count;
51: prg.Value = 0;
52: try
53: {
54: foreach (string fil in System.IO.Directory.GetFiles(dir))
55: {
56: FileInfo f = new FileInfo(fil);
57: try
58: {
59: f.Attributes = FileAttributes.Normal;
60: prg.Value++;
61: Application.DoEvents();
62: }
63: catch
64: {
65: }
66: }
67: }
68: catch { }
69: }
ابتدا برای کار با دستورات مربوط به فایل ها باید فضانام System.IO به پروژه اضافه گردد:
using System.IO;
در دستور اول وجود آدرس این فولدر توسط تابع Directory.Exists چک می شود و در صورت عدم وجود خطایی به کاربر نمایش داده می شود و اجرا متوقف می شود. سپس در صورت چک نخوردن تیک Include SubFolders وارد کد زیر می شویم:
1: count = Directory.GetFiles(dir).Length;
2: prg.Maximum = count;
3: prg.Value = 0;
4: try
5: {
6: foreach (string fil in System.IO.Directory.GetFiles(dir))
7: {
8: FileInfo f = new FileInfo(fil);
9: try
10: {
11: f.Attributes = FileAttributes.Normal;
12: prg.Value++;
13: Application.DoEvents();
14: }
15: catch
16: {
17: }
در این کد ابتدا تعداد فایل های موجود در این دایرکتوری در متغیر count وارد می شود. همچنین این مقدار به خاصیت ماکزیمم شی progressBar موجود برروی فرم اختصاص می یابد. حال در یک حلقه foreach برروی تمام فایل های موجود در فولدر انتخاب شده مقدار خاصیت Attributes فایل به وضعیت نرمال تغییر پیدا می کند و یک واحد به پیشرفت شیء ProgressBar موجود برروی فرم اضافه می شود. حال با استفاده از تابع DoEvents تمامی پیام هایی که در صف پیغام های ویندوز قرار دارند (از جمله پیام تغییر خاصیت فایلی که ما در برنامه تغییر دادیم) ارسال می شوند.
در صورت چک خوردن تیک Include SubFolders ابتدا این روند برای تمامی فولدرهای موجود در فولدر انتخاب شده صورت می گیرد.
